<?xml version="1.0" encoding="UTF-8"?>
<html>
    <head>
        <link type="text/css" rel="stylesheet" href="./css/template.css" />
        <link type="text/css" rel="stylesheet" href="./css/SyntaxHighlighter.css" />
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>Création du RAID level 1 pour le dossier racine</title>
        <script language="javascript" src="./js/shInit.js" />
        <script language="javascript" src="./js/shCore.js" />
        <script language="javascript" src="./js/shBrushCpp.js" />
        <script language="javascript" src="./js/shBrushCSharp.js" />
        <script language="javascript" src="./js/shBrushCss.js" />
        <script language="javascript" src="./js/shBrushDelphi.js" />
        <script language="javascript" src="./js/shBrushJava.js" />
        <script language="javascript" src="./js/shBrushJScript.js" />
        <script language="javascript" src="./js/shBrushPhp.js" />
        <script language="javascript" src="./js/shBrushPython.js" />
        <script language="javascript" src="./js/shBrushRuby.js" />
        <script language="javascript" src="./js/shBrushSql.js" />
        <script language="javascript" src="./js/shBrushVb.js" />
        <script language="javascript" src="./js/shBrushXml.js" />
        <keywords>RAID,1,solaris,9,root,racine</keywords>
        <author>Serhiy KVITKA</author>
    </head>
    <body>
        <div class="chapter">
            <h2>Introduction</h2>
            <p>Afin de vous expliauer comment mettre en place le RAID1, nous prendrons comme exemple une partition root qui se trouve sur /dev/dsk/c0t0d0s0, et le miroir sur un slice de taille identique qui se trouve sur /dev/dsk/c0t1d0s0. Pour le stockage de State Database sont créés 2 partitions sélectionnées d'une taille de 16 Mo : /dev/dsk/c0t0d0s7 et /dev/dsk/c0t1d0s7.</p>
            <p>
                Pour augmenter la production il est recommandé de stocker le State Database sur les disques physiques, différents de ceux sur lesquelles sont stockées les partitions réunies en RAID.
                <br />
                Ici, on étudie le cas le plus simple de deux disques physiques dans le système.
            </p>
        </div>
        <div class="chapter">
            <h2>La création de State Database (SD)</h2>
            <p>
                Avant la création de tous les RAID dans le système Solaris, il est indispensable d'avoir la
                <acronym title="State Database">SD</acronym>
                où sont stocké la configuration et l'état de tous les RAID dans le système.
            </p>
            <p>Pour le travail de correction Solstice DiskSuite, il faut avoir au moins 2 copies sur SD pour chaque disque.</p>
            <p>
                Pour le stockage de
                <acronym title="State Database">SD</acronym>
                dans le cas où il faut créer RAID pour partition root, on utilise des partitions séparées de taille moyenne et dans chacune d'elles on peut stocker quelques copies de
                <acronym title="State Database">SD</acronym>
                (les copies s'appellent State Replica). Une State Replica occupe environ 4 Mo.
            </p>
            <div class="subChapter">
                <h3>Exemple</h3>
                <div class="quote">
                    <span class="cmd_line_lvl">#&gt;</span>
                    <span class="cmd_line">metadb -f -c 3 -a c0t0d0s7</span>
                    <br />
                    <span class="cmd_line_lvl">#&gt;</span>
                    <span class="cmd_line">metadb -c 3 -a c0t1d0s7</span>
                    <br />
                    <span class="cmd_line_lvl">#&gt;</span>
                    <span class="cmd_line">metadb</span>
                    <br />
                    <span class="cmd_line">flags first blk block count</span>
                    <br />
                    <span class="cmd_line">...</span>
                    <br />
                    <span class="cmd_line">a u 16 1034 /dev/dsk/c0t0d0s7</span>
                    <br />
                    <span class="cmd_line">a u 1050 1034 /dev/dsk/c0t0d0s7</span>
                    <br />
                    <span class="cmd_line">a u 2084 1034 /dev/dsk/c0t0d0s7</span>
                    <br />
                    <span class="cmd_line">a u 16 1034 /dev/dsk/c0t1d0s7</span>
                    <br />
                    <span class="cmd_line">a u 1050 1034 /dev/dsk/c0t1d0s7</span>
                    <br />
                    <span class="cmd_line">a u 2084 1034 /dev/dsk/c0t1d0s7</span>
                </div>
            </div>
        </div>
        <div class="chapter">
            <h2>La création de RAID</h2>
            <p>On créé 2 métas d11 et d12, l'un d'eux va contenir la partition root déjà existante, l'autre la partition non initialisée, réunie en RAID.</p>
            <div class="subChapter">
                <span class="cmd_line_lvl">#&gt;</span>
                <span class="cmd_line">metainit -f d11 1 1 c0t0d0s0</span>
                <br />
                <span class="cmd_line">d11: Concat/Stripe is setup</span>
                <br />
                <span class="cmd_line_lvl">#&gt;</span>
                <span class="cmd_line">metainit d12 1 1 c0t1d0s0</span>
                <br />
                <span class="cmd_line">d12: Concat/Stripe is setup</span>
            </div>
            <p>On créé le miroir d10 (Mirror, égal RAID1), qui ne va contenir qu'un seul méta d11, c'est-à-dire que le miroir réel ne va pas encore exister.</p>
            <div class="subChapter">
                <span class="cmd_line_lvl">#&gt;</span>
                <span class="cmd_line">metainit d10 -m d11</span>
                <br />
                <span class="cmd_line">d10: Mirror is setup</span>
            </div>
            <p>Pour que le système ait une bonne configuration de réception de la part du méta, il est nécessaire d'utiliser metaroot qui corrigera éventuellement les fichiers de configuration /etc/vfstab et /etc/system :</p>
            <div class="subChapter">
                <span class="cmd_line_lvl">#&gt;</span>
                <span class="cmd_line">metaroot d10</span>
            </div>
            <p>Ensuite, il est recommandé d'utiliser un lockfs : c'est un mécanisme dont la fonction et l'application ne sont pas décrites (dans Solaris 9 pour effectuer les actes analogiques, il est pas nécessaire) :</p>
            <div class="subChapter">
                <span class="cmd_line_lvl">#&gt;</span>
                <span class="cmd_line">lockfs -fa</span>
            </div>
            <p>On redémarre le système afin d'avoir RAID Level 1, déjà en marche, mais sans le miroir réel pour l'instant.</p>
            <div class="subChapter">
                <span class="cmd_line_lvl">#&gt;</span>
                <span class="cmd_line">init 6</span>
            </div>
            <p>Après le démarrage du système, on branche au miroir le deuxième méta :</p>
            <div class="subChapter">
                <span class="cmd_line_lvl">#&gt;</span>
                <span class="cmd_line">metattach d10 d12</span>
                <br />
                <span class="cmd_line">d10: Submirror d12 is attached</span>
            </div>
            <p>Le processus de la création du RAID 1 se lance automatiquement, et on peut le suivre à l'aide du metastat. Il faut attendre que ce processus soit terminé, et donc que le système soit prêt.</p>
        </div>
        <div class="chapter">
            <h2>La préparation du système au démarrage d'un "META" de réserve</h2>
            <p>Afin de diminuer le nombre de démarrages du système et le temps des travaux, cette étape peut être effectuée avant la création du massif.</p>
            <p>Pour le démarrage du meta de réserve (dans notre cas, c0t1d0) il est nécessaire de connaître son chemin d'accès complet. Avec notre exemple :</p>
            <div class="subChapter">
                <span class="cmd_line_lvl">#&gt;</span>
                <span class="cmd_line">ls -l /dev/rdsk/c0t1d0s0</span>
                <br />
                <span class="cmd_line">lrwxrwxrwx 1 root root 55 Mar 5 12:54 /dev/rdsk/c0t1d0s0 -&gt;</span>
                <br />
                <span class="cmd_line">../../devices/sbus@0,f8000000/esp@1,200000/sd@1,0:a,raw</span>
            </div>
            <p>
                <em>La partie soulignée est celle dont on a besoin.</em>
            </p>
            <p>Dès que l'on a acces à OpenBoot (exemple : lors du démarrage sur l'étape de la création du massif), on crée le nom de ce meta et on lui applique la configuration du démarrage automatique pour le cas où le meta principal tombrait en panne :</p>
            <div class="subChapter">
                <span class="cmd_line">ok nvalias second_root /sbus@0,f8000000/esp@1,200000/sd@1,0:a</span>
                <br />
                <span class="cmd_line">ok printenv boot-device</span>
                <br />
                <span class="cmd_line">boot-device = disk net</span>
                <br />
                <span class="cmd_line">ok setenv boot-device disk second_root net</span>
                <br />
                <span class="cmd_line">boot-device = disk second_root net</span>
                <br />
                <span class="cmd_line">ok nvstore</span>
            </div>
            <p>Donc, si le meta c0t0d0 est en panne, le système commence à démarrer à partir de c0t1d0.</p>
            <p>On peut vérifier le démarrage du système du meta de réserve (uniquement après la création entière du massif, et après avoir effectué metattach ainsi que le processus de création du RAID 1) :</p>
            <div class="subChapter">
                <span class="cmd_line">ok boot second_root</span>
            </div>
            <p>Si tout a été bien effectué, le système démarrera sur le meta de réserve aussi bien que sur le principal. Le démarrage suivant sera effectué du meta principal.</p>
        </div>
    </body>
</html>

